  // 迭代
   vector<int> postorderTraversal(TreeNode* root) {
        vector<int> res;
        if(nullptr == root) return res;
        stack<TreeNode*> s;
        s.push(root);
        while(!s.empty()){
            TreeNode* node = s.top();
            s.pop();
            res.push_back(node->val);
            // 相对于前序遍历，这更改一下入栈顺序
            if(node->left != nullptr) s.push(node->left);
            if(node->right != nullptr) s.push(node->right);
            
        }
        reverse(res.begin(), res.end()); // 将结果反转之后就是后序的顺序了
        return res;
    }